home *** CD-ROM | disk | FTP | other *** search
/ CD World Haziran 1997 / CD World Haziran 1997.iso / Explorer Yardimcilari / PiXCL Tools / Sun2.px_ / Sun2.px
Encoding:
PiXCL source  |  1996-07-02  |  9.3 KB  |  332 lines

  1. Initialize:
  2.     SetColorPalette(GENERATE)
  3.     WinGetActive(Win$)
  4.     UseCoordinates(PIXEL)
  5.     UseBackGround(TRANSPARENT,0,0,0)
  6.     InfoMenu(REMOVE)
  7.     WaitInput(300)  {let NT and 95 catch up}
  8.     SetMenu()
  9.     DrawBackGround
  10.     WinLocate(Win$,200,200,720,550,Res)
  11.     SetCtrlMouse(0,0,400,300,Leave,X,Y)
  12.     SetMouse(0,0,400,300,Test,X,Y)
  13.     SetRightMouse(0,0,400,300,About,X,Y)
  14.     Title$ = "Supernova"
  15.     WinTitle(Win$, Title$)
  16.  
  17.     
  18.     
  19.     UseFont("System",5,15,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  20.     DrawText(80,60,"Click left mouse for the Show...")
  21.     DrawText(80,80,"Click right mouse for information...")
  22.  
  23. Wait_for_Input:
  24.     WaitInput()
  25.  
  26.  
  27. About:
  28.     AboutUser("Supernova program", "Sample program written with PiXCL 4.0",
  29. "This program draws a dynamic window showing the 
  30. animation capabilities of PiXCL. The Supernova
  31. image is ⌐ 1996 VYSOR Integration Inc.")
  32.  
  33.     Goto Wait_for_Input
  34.  
  35. Test:    SetMouse() SetRightMouse()
  36.     DrawBackGround
  37.     WAVPlaySound("galaxy.wav",ASYNC,FILENAME,Res)
  38.     GoSub Draw_Bl_Ell
  39.     GoSub South_cross
  40.     GoSub Draw_Little_Bang    
  41.     GoSub Draw_Red_Eclipse
  42.  
  43.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90 Terminate = 416
  44.     Red = 255 Green = 255 Blue = 255
  45.     GoSub Draw_Tiny_Bang
  46.     GoSub Draw_Little_Bang    
  47.  
  48.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90 Terminate = 416
  49.     Red = 255 Green = 255 Blue = 255
  50.     GoSub Draw_Tiny_Bang
  51.  
  52.     WaitInput(200)
  53.     GoSub Draw_Yellow_Eclipse
  54.     WAVPlaySound("warp.wav",ASYNC,FILENAME,Res)
  55.     GoSub Satelite
  56.     GoSub Draw_White_Eclipse
  57.     GoSub Draw_White_Eclipse
  58.     GoSub DrawTitle
  59. Test_1:
  60.     GoSub Draw_Red_Eclipse
  61.     GoSub Draw_Yellow_Eclipse
  62.     GoSub Draw_White_Eclipse
  63.     GoSub Draw_Red_Eclipse
  64.     GoSub Draw_Yellow_Eclipse
  65.     GoSub Draw_White_Eclipse
  66.     WaitInput(600)
  67. Leave:
  68.     WAVPlaySound("missile3.wav",ASYNC,FILENAME,Res)
  69.     GoSub Draw_Mesh_Bang      WaitInput(1800)
  70.     WAVPlaySound("zone.wav",ASYNC,FILENAME,Res)
  71.     GoSub Draw_Big_Bang
  72.     WaitInput(1400)
  73.     GoSub Draw_Little_Bang    
  74.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90 Terminate = 416
  75.     Red = 255 Green = 255 Blue = 255
  76.     GoSub Draw_Tiny_Bang
  77.  
  78.     MessageBox(YESNO,2,QUESTION,"Want to see this again ?",
  79.     "PiXCL is a true programming language !",Res)
  80.     If Res = 1 Then Goto Test
  81.     End
  82.  
  83. {======================================================================}
  84. Draw_Little_Bang:
  85.     UsePen(SOLID,1,255,255,255)
  86.     UseBrush(SOLID,255,255,224)
  87.     DrawEllipse(380,70,400,90)
  88.     UseBrush(NULL,0,0,0)
  89.     X1 = 380 Y1 = 70  X2 = 400   Y2 = 90
  90.     Red = 255 Green = 255 Blue = 255
  91. Little_Bang_Loop_W:
  92.     DrawEllipse(X1,Y1,X2,Y2)
  93.     X1 = X1 - 1      Y1 = Y1 - 1  
  94.     X2 = X2 + 1      Y2 = Y2 + 1
  95.     Red = Red - 16   Green = Green - 16 Blue = Blue - 16
  96.     UsePen(SOLID,1,Red,Green,Blue)
  97.     WaitInput(1)
  98.     If X2 <= 428 Then Goto Little_Bang_Loop_W
  99.     Return
  100.  
  101. Draw_Mesh_Bang:
  102.     Flag = 0
  103.     UsePen(SOLID,1,0,0,0)
  104.     UseBrush(NULL,255,255,255)
  105.     DrawEllipse(20,20,80,80)
  106.     X1 = 19 Y1 = 19  X2 = 81   Y2 = 81
  107.     Incr = 3
  108. Test_Loop_MB:
  109.     DrawEllipse(X1,Y1,X2,Y2)    
  110.     X1 = X1 - Incr      Y1 = Y1 - Incr  
  111.     X2 = X2 + Incr      Y2 = Y2 + Incr
  112.     If X2 < 610 Then Goto Test_Loop_MB
  113.     Return
  114.  
  115.  
  116.     Return
  117. {======================================================================}
  118. Draw_Big_Bang:
  119.     WinGetClientRect("",cx1,cy1,cx2,cy2)
  120.     Flag = 0
  121.     UsePen(SOLID,2,255,255,255)
  122.     UseBrush(SOLID,255,255,255)
  123.     DrawEllipse(20,20,80,80)
  124.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  125.     Red = 255 Green = 255 Blue = 255
  126.     DecR = 1 DecG = 1 DecB = 1
  127.     Incr = 2
  128. Test_Loop_BB:
  129.     DrawEllipse(X1,Y1,X2,Y2)
  130.     X1 = X1 - Incr      Y1 = Y1 - Incr  
  131.     X2 = X2 + Incr      Y2 = Y2 + Incr
  132.     J = X2 % 25
  133.     If J = 0 Then WaitInput(1)
  134.     If X2 <= 376
  135.         If X2 = 92 Then UseBrush(NULL,255,255,255) DecR = 2 DecG = 2 DecB = 2
  136.         Red = Red - DecR | Green = Green - DecG | Blue = Blue - DecB
  137.         If Red < 0 Then Red = 0
  138.         If Green < 0 Then Green = 0
  139.         If Blue < 0 Then Blue = 0
  140.             UsePen(SOLID,2,Red,Green,Blue)
  141.         If X2 = 304 Then DecR = -16 | DecG = -16 | DecB = -16
  142.         If X2 = 318 Then DecR = 8 | DecG = 8 | DecB = 8
  143.         If X2 = 376 Then DecR = 0 | DecG = 0 | DecB = 0
  144.         GoSub South_cross 
  145.     Endif
  146.     If X2 = 380 Then UsePen(SOLID,4,Red,Green,Blue) Incr = 4      
  147.     If X2 = 400 Then UsePen(SOLID,5,Red,Green,Blue) Incr = 5     
  148.     If X2 = 430 Then UsePen(SOLID,7,Red,Green,Blue) Incr = 7     
  149.     If X2 = 479 Then UsePen(SOLID,9,Red,Green,Blue) Incr = 9     
  150.     If X2 < 610 Then Goto Test_Loop_BB
  151.     Return
  152.  
  153.  
  154. {======================================================================}
  155. Draw_Tiny_Bang:
  156.     UsePen(SOLID,1,255,255,255)
  157.     UseBrush(SOLID,255,255,0)
  158.     UseBrush(NULL,0,0,0)
  159. Tiny_Bang_Loop_W:
  160.     DrawEllipse(X1,Y1,X2,Y2)
  161.     X1 = X1 - 1      Y1 = Y1 - 1  
  162.     X2 = X2 + 1      Y2 = Y2 + 1
  163.     Red = Red - 16   Green = Green - 16 Blue = Blue - 16
  164.     UsePen(SOLID,1,Red,Green,Blue)
  165.     W = X2 % 5
  166.     If W = 0 
  167.        If GoFast <> 1 Then WaitInput(1)
  168.     Endif
  169.     If X2 <= Terminate Then Goto Tiny_Bang_Loop_W
  170.     Return
  171.  
  172.  
  173. {======================================================================}
  174. Draw_Yellow_Eclipse:
  175.     UsePen(SOLID,1,255,255,0)
  176.     UseBrush(SOLID,0,0,0)
  177.     DrawEllipse(20,20,80,80)
  178.     UseBrush(NULL,0,0,0)
  179.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  180.     Red = 255 Green = 255
  181. Test_Loop_Y:
  182.     DrawEllipse(X1,Y1,X2,Y2)
  183.     X1 = X1 - 1      Y1 = Y1 - 1  
  184.     X2 = X2 + 1      Y2 = Y2 + 1
  185.     Red = Red - 5   Green = Green - 5
  186.     UsePen(SOLID,1,Red,Green,0)
  187.     W = X2 % 5
  188.     If W = 0 Then WaitInput(1)
  189.     If X2 < 125 Then Goto Test_Loop_Y
  190.     Return
  191.  
  192. {======================================================================}
  193. Draw_White_Eclipse:
  194.     UsePen(SOLID,1,255,255,255)
  195.     UseBrush(SOLID,0,0,0)
  196.     DrawEllipse(20,20,80,80)
  197.     UseBrush(NULL,0,0,0)
  198.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  199.     Red = 255 Green = 255 Blue = 255
  200. Test_Loop_W:
  201.     DrawEllipse(X1,Y1,X2,Y2)
  202.     X1 = X1 - 1      Y1 = Y1 - 1  
  203.     X2 = X2 + 1      Y2 = Y2 + 1
  204.     Red = Red - 5   Green = Green - 5 Blue = Blue - 5
  205.     UsePen(SOLID,1,Red,Green,Blue)
  206.     W = X2 % 5
  207.     If W = 0 Then WaitInput(1)
  208.     If X2 < 125 Then Goto Test_Loop_W
  209.     Return
  210.  
  211. {======================================================================}
  212. Draw_Red_Eclipse:
  213.     UsePen(SOLID,1,255,0,0)
  214.     UseBrush(SOLID,0,0,0)
  215.     DrawEllipse(20,20,80,80)
  216.     UseBrush(NULL,0,0,0)
  217.     X1 = 20 Y1 = 20  X2 = 80   Y2 = 80
  218.     Red = 255 Green = 255 Blue = 255
  219. Test_Loop_R:
  220.     DrawEllipse(X1,Y1,X2,Y2)
  221.     X1 = X1 - 1      Y1 = Y1 - 1  
  222.     X2 = X2 + 1      Y2 = Y2 + 1
  223.     Red = Red - 5
  224.     UsePen(SOLID,1,Red,0,0)
  225.     W = X2 % 5
  226.     If W = 0 Then WaitInput(1)
  227.     If X2 < 125 Then Goto Test_Loop_R
  228.     Return
  229.  
  230. {======================================================================}
  231. Draw_Bl_Ell:
  232.     X1 = -200  Y1 = 170
  233.     X2 = 700   Y2 = 560
  234.     Blue = 255
  235.     UsePen(SOLID,1,0,96,Blue)
  236.     UseBrush(SOLID,0,96,Blue)
  237.     DrawEllipse(-200,170,700,560)
  238.     UseBrush(NULL,0,0,Blue)
  239.     UsePen(SOLID,1,0,0,Blue)
  240.  
  241. StartLoop_0:
  242.     Blue = Blue - 4
  243.     UsePen(SOLID,1,0,0,Blue)
  244.     X1 = X1 - 1      Y1 = Y1 - 1  
  245.     X2 = X2 + 1      Y2 = Y2 + 1
  246.     DrawEllipse(X1,Y1,X2,Y2)
  247.     If Y2 < 619 Then Goto StartLoop_0
  248. EndLoop_0:
  249.     GoSub South_cross
  250.     Return
  251.  
  252. DrawTitle:
  253.         UseFont("Arial",31,69,BOLD,ITALIC,NOUNDERLINE,255,0,0)
  254.     DrawText(193,33,"PiXCL 4.0")
  255.     DrawText(192,32,"PiXCL 4.0")
  256.     DrawText(191,31,"PiXCL 4.0")
  257.         UseFont("Arial",31,69,BOLD,ITALIC,NOUNDERLINE,255,255,0)
  258.     DrawText(190,30,"PiXCL 4.0")
  259.         UseFont("Arial",13,19,BOLD,ITALIC,NOUNDERLINE,255,0,0)
  260.     DrawText(191,121,"The Rapid  Graphical")
  261.     DrawText(191,141,"Programmer Toolkit")
  262.         UseFont("Arial",13,19,BOLD,ITALIC,NOUNDERLINE,255,255,0)
  263.     DrawText(190,120,"The Rapid  Graphical")
  264.     DrawText(190,140,"Programmer Toolkit")
  265.  
  266.         UseFont("Arial",9,15,BOLD,ITALIC,NOUNDERLINE,255,255,255)
  267.     DrawText(200,170,"for Windows NT 3.51")
  268.     DrawText(220,185,"and Windows 95")
  269.  
  270.  
  271.     Return
  272. {====================================================}
  273. South_cross:
  274.     UseFont("WingDings",11,17,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  275.     DrawText(115,80,"¼")
  276.     DrawText(210,9,"¼")
  277.     UseFont("WingDings",11,17,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  278.     DrawText(154,7,"¼")
  279.     UseFont("WingDings",9,13,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  280.     DrawText(204,58,"¼")
  281.     UseFont("WingDings",9,13,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  282.     DrawText(166,42,"¼")
  283.     UseFont("Arial",3,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  284.     DrawText(370,7,".")
  285.     UseFont("WingDings",5,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  286.     DrawText(106,42,"¼")
  287.     UseFont("WingDings",3,7,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  288.     DrawText(286,38,"¼")
  289.     UseFont("WingDings",5,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  290.     DrawText(310,23,"¼")
  291.     UseFont("Arial",3,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  292.     DrawText(198,56,".")
  293.     UseFont("Arial",3,9,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  294.     DrawText(243,76,".")
  295.     DrawText(145,42,".")
  296.     UseFont("Arial",7,13,NOBOLD,NOITALIC,NOUNDERLINE,255,255,255)
  297.     DrawText(178,16,".")
  298.     DrawText(145,32,".")
  299.     DrawText(188,16,".")
  300. Return
  301. {====================================================}
  302. Satelite:
  303.     UsePen(SOLID,1,255,255,255)
  304.     Abc = 14 Ord = 2
  305.     XC = 400  YC = 80 St = 1
  306.     Gray = 255  
  307.     UseBrush(SOLID,255,Gray,Gray)
  308.     UsePen(SOLID,1,255,Gray,Gray)
  309.  
  310. Dec:    XC = XC - Abc
  311.     YC = YC + Ord
  312.     St = St + 1 
  313.     
  314.     XC_ = XC + St   YC_ = YC + St
  315.     
  316.     DrawEllipse(XC,YC,XC_,YC_)
  317.     If YC > 80 Then  Set Gray = Gray - 6
  318.     If YC > 120 Then  Set Gray = Gray - 6
  319.     UsePen(SOLID,1,255,Gray,Gray)
  320.     UseBrush(SOLID,255,Gray,Gray)
  321.     
  322.     If YC > 40 Then Goto Trail
  323.     UsePen(SOLID,0,0,0,0)
  324.     UseBrush(SOLID,0,0,0)
  325.     DrawEllipse(XC,YC,XC_,YC_)
  326.     Goto Chck
  327. Trail:
  328.     XCB = XC - 1 YCB = YC - 1 
  329.     XCB_ = XC_ - 1 YCB_ = YC_ - 1
  330.     DrawEllipse(XCB,YCB,XCB_,YCB_)
  331. Chck:    If YC < 200 Then Goto Dec
  332. Return